/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.tesoreria.bc;

import groovyjarjarasm.asm.tree.TryCatchBlockNode;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.cip.esymons.tesoreria.be.EnumEstadoPresupuesto;
import org.cip.esymons.tesoreria.be.Presupuesto;

/**
 *
 * @author Gilmar Montoya
 */
@Stateless
public class PresupuestoFacade implements PresupuestoFacadeLocal {
    @PersistenceContext
    private EntityManager em;

    public void create(Presupuesto presupuesto) {
        em.persist(presupuesto);
    }

    public void edit(Presupuesto presupuesto) {
        em.merge(presupuesto);
    }

    public void remove(Presupuesto presupuesto) {
        em.remove(em.merge(presupuesto));
    }

    public Presupuesto find(Object id) {
        try {
            return em.find(Presupuesto.class, id);
        } catch (Exception e) {
            return null;
        }
    }

    public List<Presupuesto> findAll() {
        try {
            return em.createQuery("select object(o) from Presupuesto as o").getResultList();
        } catch (Exception e) {
            return new ArrayList();
        }
    }

    public List<Presupuesto> listaPresupuestosActivosPorCodigo(String codigo){
        try{
            Query q = em.createQuery("Select o From Presupuesto o Where o.preCodigo like ?1 and o.preEstado=?2");
            q.setParameter(1, codigo+"%");
            q.setParameter(2, EnumEstadoPresupuesto.Activo);
            return q.getResultList();
        }catch(Exception e){
            return new ArrayList();
        }
    }
    public List<Presupuesto> listaPresupuestosActivos() {
        try {
            return em.createQuery("select object(o) from Presupuesto as o where o.preEstado=?1").setParameter(1,EnumEstadoPresupuesto.Activo).getResultList();
        } catch (Exception e) {
            return new ArrayList();
        }
    }

}
